An application programming interface (API) method specifies how some software components should interact with each other. An API method can be in the form of an API library, which is essentially a basic library consisting of interfaces, functions, classes, structures, enumerations, etc. for building a software application. An API library can also consist of specifications for routines, data structures, object classes, and variables. In other cases, an API method can come as just a specification of remote calls, allowing an application to cause a procedure to execute in another address space. API method and libraries are usually specific to a given technology: hence, the API methods of a given language cannot be used in other languages unless the function calls are wrapped with specific adaptation libraries. When clients and servers interact, they rely on pre-determined versions of API methods on the client application side and compatible API method versions in the API library on the server side. Often, the API versions in the API library are modified when changes are made on the server side. This leads to compatibility errors between client programs and server programs due to the versions required by the client not matching the versions available on the server. Compatibility errors require many changes to the client program to allow for software compatibility with the API library on the server.